// 导入定义仓库的方法
import {
	defineStore
} from 'pinia';
import {
	getInfo
} from "@/api/login.js"

// 导入响应式和计算
import {
	ref
} from 'vue'
const useUserStore = defineStore("user", () => {
	// 定义一个状态颜色为 默认红色
	const userinfo = ref({
		id: "",
		name: "",
		avatar: "",
		provinceId: "",
		cityId: "",
		cityId: "",
		zoneId: "",
		streetId: "",
	});
	// 定义一个设置状态的方法
	const setUserinfo = (payload) => {
		getInfo().then((res) => {
			console.log('res', res)
			const user = res.user;
			// const avatar =
			// 	user.avatar == "" || user.avatar == null ? defAva : user.avatar;
			userinfo.value.name = user.userName;
			userinfo.value.avatar = user.avatar;
			userinfo.value.provinceId = user.provinceId;
			userinfo.value.cityId = user.cityId;
			userinfo.value.zoneId = user.zoneId;
			userinfo.value.streetId = user.streetId;
			userinfo.value.deptType = user.dept.deptType;
		})

	}
	// 导入
	return {
		userinfo,
		setUserinfo
	}
}, {
	// 重要：模块必须开启持久化，才会持久化！！！
	// 注意：默认持久化，只在H5端有效，因为默认使用的是localStorage，小程序端不能使用这个API，所以需要重写存取方法，转调给UniApp的持久化方法
	persist: true,
	persist: {
		// 默认值，就是使用localStorage
		// storage: localStorage
		// 重写存取方法，转调给UniApp
		storage: {
			getItem(key) {
				return uni.getStorageSync(key)
			},
			setItem(key, val) {
				uni.setStorageSync(key, val)
			}
		}
	}
})

export default useUserStore;